package com.ruoyi.stock.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 持仓记录
对象 stock_hold
 * 
 * @author xxb
 * @date 2024-12-30
 */
@ApiModel()
public class StockHold extends HeaderFileld
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;



    /** 时间周期 */
    @Excel(name = "时间周期")
    @ApiModelProperty(value = "时间周期")
    private String timePerion;



    /** 期权结构 */
    @Excel(name = "期权结构")
    @ApiModelProperty(value = "期权结构")
    private String stockStructue;

    /** 用户id */
    @Excel(name = "用户id")
    private Long sysUserId;

    /** 开仓日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开仓日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开仓日期")
    private Date openDate;

    /** 到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "到期日期")
    private Date  maturityDate;

    /** 开仓本金 */
    @Excel(name = "开仓本金")
    @ApiModelProperty(value = "开仓本金")
    private BigDecimal openPrincipal;

    /** 其他成本 */
    @Excel(name = "其他成本")
    @ApiModelProperty(value = "其他成本")
    private BigDecimal otherCose;

    /** 名义本金 */
    @Excel(name = "名义本金")
    @ApiModelProperty(value = "名义本金")
    private String notionalPrincipal;



    /** 敲出票息 */
    @Excel(name = "敲出票息")
    @ApiModelProperty(value = "敲出票息")
    private String qcpx;

    /** 保证金比例 */
    @Excel(name = "保证金比例")
    @ApiModelProperty(value = "保证金比例")
    private String marginRatio;

    /** 敲入观察日 */
    @Excel(name = "敲入观察日", width = 30)
    @ApiModelProperty(value = "敲入观察日")
    private String qrgcDate;

    /** 敲出观察日 */

    @Excel(name = "敲出观察日", width = 30)
    @ApiModelProperty(value = "敲出观察日")
    private String qcgcDate;

    /** 开仓价格 */
    @Excel(name = "开仓价格")
    private String openPirce;




    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private BigDecimal status;

    /** 浮动盈利 */
    @Excel(name = "浮动盈利")
    @ApiModelProperty(value = "浮动盈利")
    private String floatingProfit;

   //查询用，用户名称
    private String  userName;
    // 用户头像
    private String  userPhoto;

    public String getOpenPirce() {
        return openPirce;
    }

    public void setOpenPirce(String openPirce) {
        this.openPirce = openPirce;
    }


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPhoto() {
        return userPhoto;
    }

    public void setUserPhoto(String userPhoto) {
        this.userPhoto = userPhoto;
    }

    public Long getSysUserId() {
        return sysUserId;
    }

    public void setSysUserId(Long sysUserId) {
        this.sysUserId = sysUserId;
    }

    public void setQcpx(String qcpx) {
        this.qcpx = qcpx;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }


    public Date getMaturityDate() {
        return maturityDate;
    }

    public void setMaturityDate(Date maturityDate) {
        this.maturityDate = maturityDate;
    }

    public String getTimePerion() {
        return timePerion;
    }

    public void setTimePerion(String timePerion) {
        this.timePerion = timePerion;
    }

    public void setStockStructue(String stockStructue) 
    {
        this.stockStructue = stockStructue;
    }

    public String getStockStructue() 
    {
        return stockStructue;
    }
    public void setOpenDate(Date openDate) 
    {
        this.openDate = openDate;
    }

    public Date getOpenDate() 
    {
        return openDate;
    }
    public void setOpenPrincipal(BigDecimal openPrincipal) 
    {
        this.openPrincipal = openPrincipal;
    }

    public BigDecimal getOpenPrincipal() 
    {
        return openPrincipal;
    }
    public void setOtherCose(BigDecimal otherCose) 
    {
        this.otherCose = otherCose;
    }

    public BigDecimal getOtherCose() 
    {
        return otherCose;
    }
    public void setNotionalPrincipal(String notionalPrincipal) 
    {
        this.notionalPrincipal = notionalPrincipal;
    }

    public String getNotionalPrincipal() 
    {
        return notionalPrincipal;
    }


    public String getQcpx() 
    {
        return qcpx;
    }
    public void setMarginRatio(String marginRatio) 
    {
        this.marginRatio = marginRatio;
    }

    public String getMarginRatio() 
    {
        return marginRatio;
    }
    public void setQrgcDate(String qrgcDate)
    {
        this.qrgcDate = qrgcDate;
    }

    public String getQrgcDate()
    {
        return qrgcDate;
    }
    public void setQcgcDate(String qcgcDate)
    {
        this.qcgcDate = qcgcDate;
    }

    public String getQcgcDate()
    {
        return qcgcDate;
    }
    public void setStatus(BigDecimal status) 
    {
        this.status = status;
    }

    public BigDecimal getStatus() 
    {
        return status;
    }
    public void setFloatingProfit(String floatingProfit) 
    {
        this.floatingProfit = floatingProfit;
    }

    public String getFloatingProfit() 
    {
        return floatingProfit;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("stockType", getStockType())
            .append("timePerion", getTimePerion())
            .append("lastPrice", getLastPrice())
            .append("stockStructue", getStockStructue())
            .append("openDate", getOpenDate())
            .append("openPrincipal", getOpenPrincipal())
            .append("otherCose", getOtherCose())
            .append("notionalPrincipal", getNotionalPrincipal())
            .append("qcpx", getQcpx())
            .append("marginRatio", getMarginRatio())
            .append("qrgcDate", getQrgcDate())
            .append("qcgcDate", getQcgcDate())
            .append("status", getStatus())
            .append("floatingProfit", getFloatingProfit())
            .toString();
    }
}
